/*
 * 初始化顺序的流程
 * 1、先初始化static声明的变量和方法
 * 2、初始化属性
 * 3、调用构造函数
 * */
public class TestSeq02 {
	static int a = 10;
	
	public static void main(String[] args) {
		a = 30;
		Fish f1 = new Fish("小黄");
		System.out.println("---------------------------");
		Fish f2 = new Fish("小花");
	}
}

class Fish {
	Food f1 = new Food(1);
	Fish(String name) {
		System.out.println("fish["+name+"] 被创建");
	}
	Food f2 = new Food(2);
	//static声明的变量是首先被执行的，static声明的变量只会初始化一次
	static Food f3 = new Food(999);
}

class Food {
	Food(int n) {
		System.out.println("food["+n+"]");
	}
}
